﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BusinessLogicLayer;
using DataAccessLayer;
using System.Globalization;

namespace ChamCong.NhanVien
{
    public partial class CongTac : BasePage
    {
        NhanVienBLL NVBLL = new NhanVienBLL();
        CongTacBLL CTBLL = new CongTacBLL();
        public static int _MaNV, _ttd;
        
        protected void Page_Load(object sender, EventArgs e)
        {

            _MaNV = Convert.ToInt32(Session["MaNV"]);
            if (!Page.IsPostBack)
            {
                if (Request.QueryString["ttd"] == null)
                {
                    List<NHANVIEN> ThongTinNhanVien = new List<NHANVIEN>();
                    ThongTinNhanVien = NVBLL.TimKiem(_MaNV);
                    //lblTenDangNhap.Text = ThongTinNhanVien[0].TenDangNhap;
                    lblHoTen.Text = ThongTinNhanVien[0].HoTen;
                    lblMaNV.Text = ThongTinNhanVien[0].MaNV.ToString();
                    lblPhongBan.Text = NVBLL.TimPhongBan(_MaNV).ToString();
                    tbXinCT.Visible = true;
                }
                else
                {
                    tbXinCT.Visible = false;                    

                    _ttd = Convert.ToInt32(Request.QueryString["ttd"]);
                    bindPersonalGridView(_MaNV, _ttd);
                    if (Request.QueryString["MaPhep"] != null)
                    {
                        int mp = int.Parse(Request.QueryString["MaPhep"]);
                        bindDetailView(mp, _ttd);
                    }
                }
            }
        }

        public string LayLoaiDS()
        {
            string ds;
            if (Request.QueryString["ttd"] == null)
            {
                ds = "oizp";
            }
            else
            {
                ds = Request.QueryString["ttd"].ToString();
            }

            return ds;
        }

        public void bindPersonalGridView(int _manv, int _ttd)
        {
            if (CTBLL.DSPhepCaNhan(_manv,_ttd).Count > 0)
            {
                grvDSPhepCT.Visible = true;
                grvDSPhepCT.DataSource = CTBLL.DSPhepCaNhan(_manv, _ttd);
                grvDSPhepCT.DataBind();
            }
            else
            {
                sbcMsgBox.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Warning, "Thông báo", "Hiện thời không có dữ liệu!");
            }

        }

        public void bindDetailView(int _mp, int _ttd)
        {
            try
            {
                dtvCTPhepCT.Visible = true;
                List<PHEPCONGTAC> ls = CTBLL.LayThongTinPhepCT(_mp);
                dtvCTPhepCT.DataSource = ls;
                dtvCTPhepCT.DataBind();
                if (_ttd == 1 || _ttd == 2 || _ttd == 3)
                {
                    tbxChuThich.Visible = true;
                    tbxChuThich.Text = CTBLL.LayChuThich(_mp);
                    lblChuThich.Visible = true;
                }

                //nếu là đơn công tác mới -> load lại gridview
                foreach (var a in ls)
                {
                    if (a.TrangThaiDoc == 0)
                    {
                        if (_ttd == 1 || _ttd == 2)
                        {
                            PHEPCONGTAC P = new PHEPCONGTAC();
                            P.MaPhepCT = _mp;
                            P.TrangThaiDoc = 1;
                            CTBLL.Sua(P);
                        }

                        bindPersonalGridView(_MaNV, _ttd);
                    }
                }
                
            }
            catch { }
        }

        public string ktDuyet(object ttd)
        {
            if (ttd.ToString() == "1")
                return "Đã duyệt";
            else if (ttd.ToString() == "0")
                return "Chờ duyệt";
            return "Không duyệt";
        }

        public string ktTenNV(object tnv)
        {
            int _MaNV = Convert.ToInt32(tnv);

            NHANVIEN NV = NVBLL.LayNhanVien(_MaNV);
            return NV.HoTen;
        }
        
        protected void btnNop_Click(object sender, EventArgs e)
        {

            try
            {
                PHEPCONGTAC PCT = new PHEPCONGTAC();
                PCT.MaNV = int.Parse(lblMaNV.Text);
                PCT.ChiTiet = tbxChiTiet.Text.Trim();
                DateTime dtmNgayDiCT = new DateTime();
                DateTime dtmNgayDiLam = new DateTime();
                dtmNgayDiCT = DateTime.ParseExact(tbxNgayDi.Text, "dd-MM-yyyy", null);
                tbxNgayDi.Text = dtmNgayDiCT.ToString("yyyy-MM-dd");
                if (dtmNgayDiCT < DateTime.Now)
                {
                    Response.Write("<script>alert('Ngày đi công tác phải lớn hơn hoặc bằng ngày hiện tại');history.go(-1);</script>");
                }
                else
                {
                    dtmNgayDiLam = DateTime.ParseExact(tbxNgayLamViecLai.Text, "dd-MM-yyyy", null);
                    tbxNgayLamViecLai.Text = dtmNgayDiLam.ToString("yyyy-MM-dd");

                    if (dtmNgayDiLam > dtmNgayDiCT)
                    {
                        TimeSpan SoNgayCT = (dtmNgayDiLam - dtmNgayDiCT);
                        PCT.NgayDi = dtmNgayDiCT;
                        PCT.NgayLamViecLai = dtmNgayDiLam;
                        PCT.TrangThaiDuyet = 0;

                        PCT.SoNgayCT = (SoNgayCT.Days);
                        PCT.NgayTao = DateTime.Now;
                        CTBLL.TaoDonXinPhepCT(PCT);
                        //sbcMsgBox1.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Success, "Thông báo", "Tạo phép công tác thành công!");
                        Response.Write("<script>alert('Tạo phép thành công!');window.location.href='CongTac.aspx?ttd=0';</script>");
                    }
                    else
                    {
                        Response.Write("<script>alert('Ngày đi làm lại phải lớn hơn hoặc bằng ngày bắt đầu công tác');history.go(-1);</script>");
                    }
                }
                
            }
            catch (Exception ex)
            {
                sbcMsgBox1.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Error, "Thông báo", ex.Message);
            }

        }

        protected void btnHuy_Click(object sender, EventArgs e)
        {
            tbxNgayDi.Text = "";
            tbxNgayLamViecLai.Text = "";
            tbxChiTiet.Text = "";
        }

        protected void grvDSPhepCT_rowdatabound(object sender, GridViewRowEventArgs e)
        {
            if (DataBinder.Eval(e.Row.DataItem, "TrangThaiDoc") == null)
            { }
            else
            {
                int ttd = int.Parse(DataBinder.Eval(e.Row.DataItem, "TrangThaiDoc").ToString());
                if (ttd == 0)
                {
                    e.Row.Attributes.Add("style", "font-weight:bold;");
                }

            }
        }

        protected void grvDSPhepCT_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            grvDSPhepCT.PageIndex = e.NewPageIndex;
            this.bindPersonalGridView(_MaNV, _ttd);
        }
    }
}